home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat7 / xlv.z / xlv
Encoding:
Text File  |  2002-10-03  |  12.9 KB  |  265 lines

  1.  
  2.  
  3.  
  4. xxxxllllvvvv((((7777MMMM))))                                                                xxxxllllvvvv((((7777MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      xlv - logical volume disk driver
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ////ddddeeeevvvv////xxxxllllvvvv////****
  13.      ////ddddeeeevvvv////rrrrxxxxllllvvvv////****
  14.  
  15. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  16.      XLV devices provide access to disk storage as _l_o_g_i_c_a_l _v_o_l_u_m_e_s.  A logical
  17.      volume is an object that behaves like a disk partition, but its storage
  18.      can span several physical disk devices.
  19.  
  20.      Using XLV, you can concatenate disks together to create larger logical
  21.      volumes, stripe data across disks to create logical volumes with greater
  22.      throughput, and plex (or mirror) disks for reliability.  In addition, XLV
  23.      enables you to change the configuration of volumes while the volume is
  24.      actively being used as a filesystem.
  25.  
  26.      The geometry of logical volumes (e.g., the disks that belong to it, how
  27.      they are put together, etc.) are stored in the disk labels of the disks
  28.      that belong to the logical volumes.  When the system starts up, the
  29.      utility _x_l_v__a_s_s_e_m_b_l_e(1M) scans all the disks on the system and
  30.      automatically assembles them into logical volumes.  _x_l_v__a_s_s_e_m_b_l_e(1M) also
  31.      creates any necessary device nodes.
  32.  
  33.      XLV device names always begin with ////ddddeeeevvvv////{{{{rrrr}}}}xxxxllllvvvv////_d_e_v_i_c_e__n_a_m_e where the
  34.      _d_e_v_i_c_e__n_a_m_e is assigned by the creator of the volume.  See _x_l_v__m_a_k_e(1M)
  35.      for how volumes are created.
  36.  
  37.      Device numbers range from 0 to one less than the maximum number of
  38.      logical volume devices configured in the system.  This is 10 by default;
  39.      this number can be changed by rebuilding a kernel with _l_b_o_o_t(1M).
  40.  
  41.      There is a kernel driver, referred to as _x_l_v, and some daemons for the
  42.      logical volume devices.  The driver is a 'pseudo device' not directly
  43.      associated with any physical hardware; its function is to map requests on
  44.      logical volume devices into requests on the underlying disk devices.  The
  45.      daemons take care of error recovery and dynamic reconfiguration of
  46.      volumes.
  47.  
  48.    VVVVoooolllluuuummmmeeee OOOObbbbjjjjeeeeccccttttssss
  49.      XLV allows you to work with whole volumes and pieces of volumes.  Pieces
  50.      of volumes are useful for creating and reconfiguring volumes in units
  51.      that are larger than individual disk partitions.
  52.  
  53.      Each _v_o_l_u_m_e consists of up to three _s_u_b_v_o_l_u_m_e_s.  An _x_f_s(4) filesystem
  54.      usually has a large _d_a_t_a subvolume in which all the user files and
  55.      metadata such as inodes are stored and a small _l_o_g subvolume in which the
  56.      filesystem log is stored.  For high-performance and real-time
  57.      applications, a volume can also have a _r_e_a_l-_t_i_m_e subvolume that contains
  58.      only user files aligned at configurable block boundaries.  Guaranteed
  59.      rate I/O can be done to real-time subvolumes.  See _g_r_i_o(5).
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. xxxxllllvvvv((((7777MMMM))))                                                                xxxxllllvvvv((((7777MMMM))))
  71.  
  72.  
  73.  
  74.      Each subvolume can be independently organized as 1 to 4 _p_l_e_x_e_s.  Plexes
  75.      are sometimes known as mirrors.  XLV makes sure that the data in all the
  76.      plexes of a subvolume are the same.  Plexes are useful for reliability
  77.      since a subvolume remains available if any of its plexes are available.
  78.      Since each subvolume is independently organized, you can choose to plex
  79.      any, all, or none of the subvolumes within a volume.
  80.  
  81.      Each plex consists of up to 128 _v_o_l_u_m_e _e_l_e_m_e_n_t_s.  Each volume element is
  82.      a collection of _d_i_s_k _p_a_r_t_i_t_i_o_n_s that may be either striped or
  83.      concatenated.  By adding volume elements, you can extend the size of a
  84.      subvolume -- even one that is striped.  Volume elements within a plex do
  85.      not need to be of the same size.  However, all the volume elements at the
  86.      same offset in all the plexes of the subvolume must be the same size.
  87.      For example, the first and second volume elements in a plex can have
  88.      different sizes.  But the first volume element in all the plexes of the
  89.      subvolume must be the same size.  This restriction is necessary because
  90.      the volume element is the unit of recovery.  Note that if XLV gets an
  91.      unrecoverable disk error on one disk partition in a volume element, the
  92.      entire volume element is taken offline.
  93.  
  94.      Each volume element can consist of from 1 to 100 disk partitions.  The
  95.      disks can be treated as either a _c_o_n_c_a_t_e_n_a_t_e_d _s_e_t (in which case XLV
  96.      writes to the partitions sequentially) or as a _s_t_r_i_p_e_d _s_e_t (in which case
  97.      XLV writes a stripe unit's worth of data to one disk and then rotates to
  98.      the next disk in the stripe set.) In general, it is better to use volume
  99.      elements that contain single disks when you want to concatenate disks
  100.      together and only use volume elements with multiple disks when you want
  101.      to use disk-striping.  This is because the volume element is the unit of
  102.      recovery.
  103.  
  104.      XLV allows you to create and work with volumes, subvolumes, plexes, and
  105.      volume elements.  The interesting operations associated with volumes are:
  106.      creating them, assembling disk partitions into volumes, mounting them,
  107.      changing volume configurations, shutting them down, and destroying them.
  108.  
  109.    NNNNaaaammmmiiiinnnngggg VVVVoooolllluuuummmmeeee OOOObbbbjjjjeeeeccccttttssss
  110.      Each XLV object is composed of a hierarchy of lower level objects.  For
  111.      example, a volume is composed of subvolumes that are in turn composed of
  112.      plexes, etc.  To let you refer to a component of an XLV object, XLV has
  113.      adopted a hierarchical naming convention.  For example:
  114.  
  115.      mmmmoooovvvviiiieeeessss....ddddaaaattttaaaa....0000....5555....55550000  Refers to the volume named _m_o_v_i_e, the _d_a_t_a subvolume,
  116.                          plex _0 of that subvolume, volume element _5 within
  117.                          that plex, and disk partition _5_0 within that volume
  118.                          element.  Note that the numbers are zero-based.
  119.  
  120.      mmmmoooovvvviiiieeeessss....lllloooogggg....2222        Refers to plex number 2 in the log subvolume of the
  121.                          volume named _m_o_v_i_e_s.
  122.  
  123.      mmmmoooovvvviiiieeeessss....rrrrtttt....1111....5555       Refers to volume element 5 within plex number 1 of
  124.                          the real-time subvolume of the volume named _m_o_v_i_e_s.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. xxxxllllvvvv((((7777MMMM))))                                                                xxxxllllvvvv((((7777MMMM))))
  137.  
  138.  
  139.  
  140.      If you create an object outside of a volume, then that object has a
  141.      user-assigned name.  For example, ssssppppaaaarrrreeee____pppplllleeeexxxx....2222....1111 refers to disk partition
  142.      number 1 of volume element number 2 of a standalone plex named
  143.      _s_p_a_r_e__p_l_e_x.  _s_p_a_r_e__p_l_e_x does not currently belong to any subvolumes.
  144.  
  145.      These names are echoed by _x_l_v__m_a_k_e(1M) as objects are created.  They are
  146.      also useful in specifying the objects to change via _x_l_v__m_g_r(1M).
  147.  
  148.    CCCCrrrreeeeaaaattttiiiinnnngggg VVVVoooolllluuuummmmeeeessss
  149.      Volumes are created via _x_l_v__m_a_k_e(1M).  This utility writes the volume
  150.      geometry to all the disks that belong to the volume object.  The geometry
  151.      is written to the volume headers.  See _v_h(7M).
  152.  
  153.    AAAAsssssssseeeemmmmbbbblllliiiinnnngggg VVVVoooolllluuuummmmeeeessss
  154.      After a volume has been created, it must be made known to the kernel
  155.      driver before I/O can be initiated to the volume.  The command
  156.      _x_l_v__a_s_s_e_m_b_l_e(1M) scans all the disks attached to the system and assembles
  157.      all the logical volumes that it finds.  It then passes the configuration
  158.      to the kernel.  This is usually done during system startup.  Once a
  159.      volume has been assembled, I/O can be performed.
  160.  
  161.    WWWWoooorrrrkkkkiiiinnnngggg wwwwiiiitttthhhh FFFFiiiilllleeeessssyyyysssstttteeeemmmmssss
  162.      The normal filesystem utilities such as _m_k_f_s(1M) and _m_o_u_n_t(1M) work with
  163.      logical volumes.
  164.  
  165.      A logical volume consisting of a single disk partition (that may be
  166.      plexed) can be used as _r_o_o_t(7M).  You cannot boot directly off a logical
  167.      volume; you must specify the underlying disk partition.
  168.  
  169.    MMMMooooddddiiiiffffyyyyiiiinnnngggg VVVVoooolllluuuummmmeeeessss
  170.      The geometry of a volume object can be modified either offline or online.
  171.      To modify a volume object offline, first unmount the filesystem, then
  172.      destroy the volume object by using _x_l_v__m_g_r(1M).  Then, you can run
  173.      _x_l_v__m_a_k_e(1M) to create new XLV objects.  Note that _x_l_v__m_a_k_e only allows
  174.      you to use disk partitions that are not currently part of volume objects.
  175.  
  176.      You can also modify volume objects while they are online by using
  177.      _x_l_v__m_g_r(1M).  You can grow a volume, add a plex, and remove a plex while
  178.      the volume is actively being used.  Note that I/O is blocked while the
  179.      configuration is being changed.  The blocked I/O is completed after the
  180.      configuration has been written out to the disk labels.
  181.  
  182.      You can also use _x_l_v__m_g_r to remove a volume element from a plex while the
  183.      volume is online if there is at least one other plex that covers the
  184.      range of disk blocks affected.  Note that you can choose to plex only a
  185.      portion of the address space of a subvolume.
  186.  
  187.    WWWWoooorrrrkkkkiiiinnnngggg wwwwiiiitttthhhh PPPPlllleeeexxxxeeeessss
  188.      When there are multiple plexes, XLV recovers from read errors.  In
  189.      addition, XLV attempts to rewrite the data back to the failed plex.  XLV
  190.      masks write errors if it can write to at least one of the plexes.
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. xxxxllllvvvv((((7777MMMM))))                                                                xxxxllllvvvv((((7777MMMM))))
  203.  
  204.  
  205.  
  206.      When a plexed volume starts up, XLV automatically makes sure that all the
  207.      data among the plexes within each subvolume is consistent.  This may
  208.      involve copying the data from one plex to the others.  While this is
  209.      going on, the volume is available at a degraded performance.  You can
  210.      eliminate the need for plex recovery by shutting down the plex with
  211.      _x_l_v__s_h_u_t_d_o_w_n(1M).  _x_l_v__s_h_u_t_d_o_w_n synchronizes the plexes and marks them as
  212.      been the same so that when they restart, XLV knows that the plexes are
  213.      consistent and can therefore avoid the plex copies.
  214.  
  215. FFFFIIIILLLLEEEESSSS
  216.      /dev/xlv/*
  217.      /dev/rxlv/*
  218.      /var/sysgen/master.d/xlv
  219.  
  220. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  221.      cfg(1M), lv_to_xlv(1M), xlv_assemble(1M), xlv_labd(1M), xlv_make(1M),
  222.      xlv_mgr(1M), xlv_plexd(1M), xlv_shutdown(1M), xlvd(1M), grio(5).
  223.  
  224. NNNNOOOOTTTTEEEESSSS
  225.      XLV runs on both XFS and EFS filesystems.  In addition, you can read and
  226.      write to XLV devices using the raw device interfaces.
  227.  
  228.      XLV disk labels are stored on the disks themselves.  Therefore, you can
  229.      physically reposition the disk drives and XLV still assembles them
  230.      correctly.
  231.  
  232.      You can upgrade from an existing _l_v(7M) volume to an XLV volume by using
  233.      _l_v__t_o__x_l_v(1M).
  234.  
  235.      When you are running in the miniroot, the XLV device nodes are created in
  236.      /_r_o_o_t/_d_e_v/_x_l_v and /_r_o_o_t/_d_e_v/_r_x_l_v.
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.